Field of the Invention
The present invention relates to the management of information handling systems. More specifically, embodiments of the invention provide a system, method, and computer-readable medium for dynamically managing message queues to balance processing loads in a message-oriented middleware environment.
Description of the Related Art
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
One approach to optimizing the utilization of distributed information handling systems is message-oriented middleware NOM), which provides an infrastructure that allows software components that have been developed independently, and run on different networked platforms, to interact with one another. As such, MOM allows software components to be distributed over heterogeneous platforms, which reduces the complexity of developing applications that span multiple operating systems and network protocols. Furthermore, this middleware approach creates a distributed communications layer that helps insulate application developers from details associated with various operating systems and network interfaces.
MOM implementations typically rely upon asynchronous message-passing, as opposed to a request-response architecture, to address issues commonly associated with intermittent connectivity. Likewise, many MOM implementations incorporate a message queue system, which provides temporary storage when the destination application or service component is busy or not connected. As a result, should a receiver application become unavailable for any reason, sender applications can continue unaffected, as the messages they send will accumulate in the message queue for later processing once the receiver becomes available again.
Message queueing offers several advantages, including the loose coupling of applications and the freedom to process messages at their own speed. However, message queues can also become a bottleneck when the throughput of an application is higher and contention on the queue limits the throughput of the entire system. Furthermore, queues with backlogs and contention may become fragmented for certain applications, while others may need to maintain a large file store, all of which may cause performance issues. Moreover, there are also practical limits on the connections that can be made at the queue manager level, as well as unexpected unavailability or inaccessibility of a given queue at a particular time. One approach to addressing these issues is through the implementation of load balancing across distributed message queues. However, the effectiveness of known approaches to such load balancing is limited by the failure to provide dynamic addition and removal of message queues.